Optical identifier and system for reading same

ABSTRACT

A system includes a plurality of optical identifiers and a reader for the optical identifiers. Each optical identifier has an optical substrate and a volume hologram (e.g., with unique data, such as a code page) in the optical substrate. The reader for the optical identifiers includes an illumination source (e.g., a laser), and a camera. The illumination source is configured to direct light into a selected one of the optical identifiers that has been placed into the reader to produce an image of the associated volume holograms at the camera. The camera is configured to capture the image. The captured image may be stored in a digital format by the system.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/287,936, entitled Optical Identifier and System for Reading Same,which was filed on Feb. 27, 2019 and claims the benefit of priority toU.S. Provisional Patent Application No. 62/636,232, entitled OpticalIdentifier and System for Reading Same, which was filed on Feb. 28,2018, the disclosures of which applications are incorporated byreference herein in their entirety. The following applications arenoteworthy: U.S. Provisional Patent Application Ser. No. 62/636,252,entitled NB Controller and Form Factors, filed Feb. 28, 2018; U.S.Provisional Patent Application Ser. No. 62/396,332, filed Sep. 19, 2016and entitled Thing Machine; U.S. patent application Ser. No. 15/834,311,filed Dec. 7, 2017 and entitled Thing Machine Systems and Methods; U.S.patent application Ser. No. 15/708,842, filed on Sep. 19, 2017 andentitled Thing Machine; and U.S. Provisional Patent Application Ser. No.62/626,917, filed Feb. 6, 2018 and entitled Optical Identity System andMethods. The disclosure in each of these applications is incorporatedentirely by reference herein.

FIELD OF THE INVENTION

The present disclosure relates to an optical identifier and a system forreading and utilizing the optical identifier and/or informationrepresented in or by the optical identifier.

BACKGROUND OF THE INVENTION

Security is becoming more and more important, particularly as computersystems and networks become more and more complex. There are a varietyof ways to secure computer systems and networks and the data stored inand utilized by computer systems and networks.

SUMMARY OF THE INVENTION

In one aspect, a system includes a plurality of optical identifiers anda reader for the optical identifiers. Each optical identifier has anoptical substrate and a volume hologram (e.g., with unique data, such asa code page) in the optical substrate. The reader for the opticalidentifiers includes a laser, and a camera. The laser is configured todirect laser light into a selected one of the optical identifiers thathas been placed into the reader to produce an image of the associatedvolume holograms at the camera. The camera is configured to capture theimage. The captured image may be stored in a digital format by thesystem.

In another aspect, a method includes directing light from a laser into afirst optical identifier, where the first optical identifier comprisesan optical substrate and a volume hologram in the optical substrate; andcapturing an image of the volume hologram produced by the light from thelaser with a camera. The captured image may be stored in a digitalformat, e.g., in a non-transitory, computer-based memory.

In another aspect, a system for reading information from an opticalidentifier includes one or more lasers, a camera, a processor, and arelay switch. The processor causes the relay switch to turn on, anddeliver power to (and thereby turn on) the laser. The laser, once on,illuminates the optical identifier. The illumination provided by thelaser creates an image of the volume hologram that the camera captures.The processor, in a typical implementation, triggers the camera tocapture the image. The processor may then store the captured image, orsome electronic representation of the captured image in a computer-basedmemory storage device. After the image is captured, the processor maycauses or allows the laser to turn off.

In a typical implementation, the optical identifier is a solid piece ofmaterial (e.g., glass or the like) with a volume hologram incorporatedinto the solid piece of material. The volume hologram may include a codepage of data (e.g., digital data) that uniquely represents to the systemone or more real or virtual things (e.g., a person, an informationresource, an object, a piece of data, an action, etc.). In variousimplementations, the code page of data may be a QR code. A few examplesare shown in FIGS. 12A, 12B and 12C. Referring to FIG. 12A, the QR Coderepresents an RSA Private Key. Referring to FIG. 12B, the QR Coderepresents a set of raw bytes of random data. Referring to FIG. 12C, theQR Code represents machine readable object code.

In various implementations, the code page of digital data can includevarious types of information that may be utilized by the system (e.g.,by the processor mentioned above, or by another processor in the system)in any number of ways. For example, as disclosed below, the digital datain the code page may include units of data, each of which is (orrepresents) an identifier (e.g., a uniform resource identifier (URI),etc.), content (e.g., HTML content), executable machine code (e.g.,computer code), or, in some implementations, some other abstract ortangible thing. An abstract thing may be, but is not limited to aconcept. A concrete thing may be, but is not limited to, a good.

In some instances, a code page is a vector or array of bits that can berepresented in 1 or 2 dimensions spatially, that contain digital data.This data may be generated, in whole or in part, by a true random numbergenerator, a key generator as part of a public key infrastructure (PKI),machine-readable code, an identifier, or other types of digital data asdesired within the system. For example, the data may itself be generatedby an identifier. The code page is read out of the optical identifier bya reader that shines light at a particular set of conditions to generatethe constructive and destructive interference via phase shifting insidethe optical identifier to create a pattern of light and dark pixels.This pattern then falls on a 1D or 2D series of detector elementssensitive to the reader's wavelength generating electrical signals thatrepresent electrically the digital data that make up the code page. Acode page can contain different segments of data, or multiple code pagescan be combined to form a larger segment of data as needed.

The media used to create the optical identifier can be varied dependingon the desired wavelength and geometry of read-out. Many materials areavailable for creating the optical identifier. Some are opticallysensitized through treatments or dyes included in their bulk, others arepure materials that are exposed to recording wavelengths that changetheir physical parameters in order to generate localized changes inrefractive index. Examples of materials that could be used to create anoptical identifier include but are not limited to Bayer™ HX films,dichromated gelatin, acrylic glasses, photosensitized polymer glassessuch as phenanthrene-doped poly-methyl methacrylates, titanium niobate,positive or negative photoresists, photosensitized glass fibers, andsilica fibers when recorded with excimer laser energy.

The code pages are recorded using techniques known in the art tospatially modulate the beam in an interferometer to create a desiredinterference pattern inside the recording media. Other possible methodsinclude polarization multiplexing, peristrophic multiplexing,phase-coded multiplexing, spot-shift multiplexing, wavelengthmultiplexing, and spatial multiplexing. Other methods are known, as arecombinations of more than one method of multiplexing to include morethan one code page of data. Any of these could be used.

Many multiplexing methods are known, including angle-multiplexing as anexample of a recording method. A laser interferometer is constructed aspatial light modulator (SLM) in the signal beam of the recordinginterferometer, and to configure that spatial light modulator to displaythe desired bit pattern at the time of recording each code page.

The interferometer configuration can then be changed in angle so eachexposure is associated with a different code page of light and darkpixels when the optical identifier is illuminated in reconstruction at acorresponding geometry. The laser wavelength and angle must both beselected to create the appropriate reconstruction conditions for thecode page at the wavelength the identifier is to be illuminated atduring readout. The recording wavelength must also be suitable for themedia used to construct the optical identifier.

These geometries should, in general, conform to the Bragg condition dueto the thickness of the optical identifier. Thus angle is associatedwith its own unique series of dark and white pixels in the reconstructedbitmap, representing the digital data of that code page. The Braggcondition for reconstruction at a different wavelength than theconstruction wavelength can be calculated using the approximate coupledwave approximation of Kogelnik, the text of which is incorporated hereby reference (Bell System Technical Journal Volume 48, Issue 9, pages2909-2947, November 1969.)

As in many embodiments of the present invention the optical identifierhas substantial volume, a great deal of information can be storedwithin, and the range of angles a particular code page is read at thedetector is extremely limited. For example, using the methods ofKogelnik, an optical identifier that is 0.5 mm thick (credit cardthickness) viewed with a red laser diode will have a range of angles itwill show the code page in, with angle on the order of ˜0.05 degrees.This is beyond the ability of human dexterity making the identifierdifficult to tamper with outside its range of intended use. It is thisquality that, in a typical implementation, allows the optical identifierto act as a security mechanism within the context of the IOT-Systemsfurther described below.

It should be noted that the optical identifier may be multiplexed, andthus contain more than one code page for each angular position of thekey as it is rotated. Each of these code pages may be used for adifferent purpose, or additional logic in the reader inside the lock mayselect a particular code page to be used out of a plurality of codepages as the identifying information.

As the identifier moves through angles, different code pages will beprojected at the detector (camera lens). Each angle is thus associatedwith a different code page's reconstruction geometry per the Braggcondition.

In another aspect, a method of reading an optical identifier includesusing a computer-based processor, for example, to cause a relay switchto connect power to (and thereby turn on) a laser. The light produced bythe laser is directed toward an optical identifier (e.g., a solid pieceof material that is translucent or transparent at least to the laserlight) that has a code page of data (e.g., digital data) represented ina volume hologram in the solid piece of material. This produces an imagethat appears at a lens of a camera. The method further includes usingthe computer-based processor to cause or trigger the camera to take apicture of the image. In some implementations, the method includesstoring the image, or digital data that represents the image, in acomputer-based memory device. Moreover, in some implementations, themethod also includes, after the image has been captured, causing (orallowing) the relay switch to disconnect power from (and thereby turnoff) the laser).

In some implementations, one or more of the following advantages arepresent.

For example, the systems and techniques disclosed herein make it easy totransfer information (e.g., a code page) that is stored in one medium(e.g., a volume hologram in an optical identifier) into another medium(e.g., into digital data that can be stored by a computer-based system).

In some implementations, the systems and techniques disclosed herein donot require precise alignment between the optical identifier (e.g., in avolume hologram) and detector pixels. This is because the camera andlens are in a fixed position kinematically mounted in close proximity tothe optical identifier during exposure and then confirming that the datacan be read by the camera when directly observing the object beam (datacode sheet) before exposure. After exposure, the reference beamreconstructs the optical identifier when the hologram is kinematicallymounted in the same location relieving the need for precise alignment oran alignment procedure. Note: Kinematics is the branch of mechanics thatdeals with motion without reference to force or mass.

A reference beam is a laser beam used to read and write holograms. As aresult, usually reference beams are Gaussian beams or spherical wavebeams (beams that radiate from a single point) which are fairly easy toreproduce. The other beam used to write a hologram is the signal beam orobject beam. (See, e.g., FIG. 13 ).

In some implementations, the systems and techniques disclosed herein usea camera having a high resolution array of pixels and the hologram isimaged onto the array with a lens. One advantage of this is that theentire optical identifier can be read out simultaneously as opposed tomechanically scanning for sequential readout. Additionally, thereference beam can be very low in power and the lens can be very smalldue to the high sensitivity of the camera. By way of example but notlimitation a 5 Mega Pixel Raspberry Pi Camera can be used.

Another advantage present in some implementations is that the virtualimage in the optical identifier is not visible to the naked eye. Theconvergence of the optical identifier may be such that without a veryshort focal length camera and lens, the optical identifier cannot beseen. It also has an advantage in that the image is virtual so a cardplaced in the image plane, for example, will not show the code sheet(e.g., the information represented in the optical identifier). (Onealternative would be to reconstruct a real image that could be imagedonto a sheet of ground glass. The real image is an alternate to the useof a virtual image.). A virtual image is an optical image formed fromthe apparent divergence of light rays from a point, as opposed to animage formed from their actual divergence.

Another advantage, in some implementations, is that the system uses afixed lens to image the optical identifier. Technically, a fixed lenscamera is any camera that doesn't make use of interchangeable lenses.This has several advantages. For example, the first one is that thevirtual image can be collimated (if the lens is a collimating lens)before focusing onto the detector array. A collimating lens is a lensused for producing parallel rays of light. This reduces the distortionof the image and makes interrogation of the optical identifierdifficult. The lens and camera become integral to the reading of theoptical identifier. Another advantage of using a fixed lens is thatminor position variations of the optical identifier generally do notprevent the data code page from being read. There is a larger positionvariation possible during assembly which allows for less expensive andfaster production.

According to one aspect, a system includes:

-   -   1. a power management subassembly (pms) that includes a power        source (e.g., a DC battery) or an access point to a power source        (e.g., an AC mini USB port);    -   2. computer-based memory;    -   3. an illuminating device;    -   4. a switch (e.g., a relay switch) coupled to the pms and        adapted to switch on and off the illuminating device;    -   5. a communication bus;    -   6. an optical identifier (01) having a code page and positioned        so that when the switch is closed, the illuminating device turns        on and emits a beam of light to interrogate the code page and        produce a projected image;    -   7. a digital camera coupled to a processor, where a lens of the        imaging assembly of the digital camera is positioned to capture        a representation of the projected image on the camera lens.

According to another aspect, machine code that represents a method (andthe method itself that may be implemented by a system that includes aprocessor executing machine code) that includes: 1. providing a signalto a relay switch to close and thereby provide power to an illuminatingdevice (e.g., a laser) to generate a beam of light to interrogate a codepage represented in an optical identifier and produce a projected image;2. actuating a camera to capture a representation of the projected imageas digital data; 3. optionally, storing the digital data incomputer-based (e.g., non-transitory) memory; and 4. disabling thesignal to the relay switch to turn off the beam of light; and 5.interacting with (e.g., processing) the digital data. Someimplementations include enabling a processor to perform actions requiredto satisfy and/or facilitate the algorithmic steps of the foregoingprocedure.

In a certain implementations, the above-referenced process may relateto, or be applied to help establish or confirm identity (e.g., of aperson), authentication of identity, authorization, authentication ofauthorization, and/or auditing. Code pages representative of digitaldata may be interrogated to generate corresponding units of digital data(e.g., in non-transitory memory) as digital data that can be acted uponby a computer-based processor, for example, executing machine code. In atypical implementation, the interrogation will include the algorithmicsteps of the above-mentioned process.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic representation showing one exemplaryimplementation of an optical identification system (OIS) including someof the system's components.

FIG. 2 is a schematic representation showing another exemplaryimplementation of an OIS with solder points.

FIG. 3 is a schematic representation of yet another exemplaryimplementation of an OIS micro with micro USB power.

FIG. 4 is a partial schematic representation of still another exemplaryimplementation of an OIS that has mirrors.

FIG. 5 is a partial schematic representation of another exemplaryimplementation of an OIS that has mirrors and a mirror housing.

FIG. 6 is a partial schematic representation of an exemplaryimplementation of an OIS with a reflective hologram.

FIG. 7 is a schematic perspective view of an exemplary opticalidentifier unit.

FIG. 8 is a schematic representation showing two examples of opticalidentifier holding apparatuses.

FIG. 9 is a schematic representation showing an exemplary OIS with aholding apparatus for an optical identifier.

FIG. 10 is a schematic representation showing an exemplary OIS with anoptical identifier holding apparatus with a reflective back surface.

FIG. 11 is a schematic representation of using duel reference beams.

FIGS. 12A-12C are examples of code pages of data.

FIG. 13 is a schematic representation of a system for recording a volumehologram in an optical medium.

Like characters represent like elements.

DETAILED DESCRIPTION

The systems and techniques disclosed herein have potentially broadapplications. One particular application would be a use in connectionwith Graph of Things (GoT) technology, developed by NeurSciences, LLC.At a high level, GoT technology provides a framework to create,integrate, manage, and automate models about various Things. In GoTtechnology, a Thing represents something a machine can do as an actionor something that an action can act upon. Related Things are organizedin GoT technology to form a Graph of Things (GoT), and related graphscan be linked together to create a more sophisticated multi-dimensionalGoT. This GoT is essentially an expandable digital brain that can beused by software-based GoT AI Agents (i.e., NeurBots, or simply NBs)that are connected to the GoT. The Things that are present in thisdigital brain represent the agent's knowledge (and abilities) at anygiven moment in time.

In general, each NB starts with the same general knowledge as everyother NB. Each NB can evolve in a different direction from being an AIAgent with general knowledge to an AI Agent with highly specializedknowledge about a specific domain, such that, after some time haspassed, any two NBs in a particular network may have very different setsof knowledge (and abilities). U.S. patent application Ser. No.15/708,842, entitled Thing Machine, discloses certain additionalinformation about Neurbots, Things, etc. That information in particularis incorporated by reference herein in its entirety.

Human users can use computers, laptops, tablets, and smart phones, tosecurely connect to their NBs. In this regard, each NB has its ownunique identifier that a network of NBs can recognize; that uniqueidentifier may be stored, for example, in a volume hologram on anoptical substrate (e.g., a piece of glass or the like). Moreover, otherThings and/or people may be assigned their own unique identifiers thatare recognizable by a network of NBs; these identifiers too may bestored in volume holograms on optical substrates. Optical substrates canbe used to store other types of data in the form of volume holograms.

In a typical implementation, the volume hologram is a hologram where thethickness of the recording material (e.g., glass or other opticalsubstrate) is much larger than the light wavelength that was used torecord the hologram. The data storage capacity of a volume hologram onan optical substrate is enormous. Therefore, the identifiers and otherdata discussed above that may be stored in a volume hologram on anoptical substrate can be very long, which makes the inventory ofpossible identifiers very large and makes the identifiers and systemthat utilizes those identifiers very secure. In some implementations, anidentifier in a volume hologram may have 20,000 bits or more.

There are many other potential advantages to storing this kind ofinformation in a volume hologram on an optical substrate and adapting asystem to be able to access and utilize the information. For example,volume holograms on optical substrates are largely impervious toelectromagnetic pulse (EMP) attacks, surface scratches, andradio-frequency identification (RFID) interrogation. Moreover, volumeholograms on optical substrates are fire resistant, and can be madeshatter resistant. The data stored in a volume hologram on an opticalsubstrate can be used for a variety of purposes—in an NB network orotherwise. For example, in various implementations, the data can be usedto boot a machine or network to some predetermined state automatically,as an optical subscriber identification module (or SIM card), as apassport, as a driver's license, as an employee identification card, asan event entry card (or ticket), etc. In some implementations, differentvolume holograms on optical substrates can be logically paired, suchthat one optical identifier can be used by a network of NBs, forexample, to authenticate a second optical identifier, for example. Manyother uses are possible.

In some implementations, the NB is configured to operate according to amodel of human cognition and/or to utilize blockchain-based technologyto create a truly personalized, intelligent assistant or the like, thatcan learn, communicate, and/or conduct commerce on behalf of itself orits owner. In some implementations, a network of identifiable, secure,and smart NeurBot-based personal assistants may be utilized to unlockeconomic opportunities that span across all industries.

In a typical implementation, a NeurBot uses a NeurBot graph controllerfor its digital brain. There may be two basic models: a deterministicmodel and a non-deterministic model. The deterministic model provideswell-defined behavior and tightly controls what the NeurBot can, andcannot do. The non-deterministic model enables the NeurBot to behavedifferently. In such implementations, the NeurBot graph controllerorganizes everything the NeurBot knows as a graph. The nodes in thegraph may represent things that the NeurBot can do as actions, andthings that the actions can act upon. In performing an action, theNeurBot graph controller can change the graph of what the NeurBot knows.

A NeurBot can be taught some basic goals to achieve, and, by performingactions, it can try to achieve those goals. It can be taught that somegoals are more important than others, even for a brief moment in time.For example, one may want a particular NeurBot to be very interactivewith a person, but otherwise spend its time reading digital books.Sometimes, goals can conflict, such as being interactive with a personor answering a call. The NeurBot can be taught to muse about the thingsthat it knows and the things that it does not know, in order to betterorganize its thoughts and to identify areas that it should focus onlearning or reasoning about.

Each NeurBot may evolve at its own pace. In some environments, it willlearn faster than in others. A NeurBot with really good sensors, forexample, can learn quite a bit about its environment, and adapt to itsenvironment. NeurBots can also be designed to meet each other, and toshare information. Essentially, like a student, a NeurBot can learn froma teacher.

Certain implementations of NeurBots are described in detail in U.S.patent application Ser. No. 15/708,842, which was filed on Sep. 19,2017, and is entitled Thing Machine. That application, and particularlythe material describing Neurbots and Things or Thing Machines in thatapplication, is hereby incorporated by reference (and enclosed) in itsentirety.

The systems and techniques disclosed herein can be utilized and appliedto NeurBots and in NeurBot environments to facilitate identifying and/orrepresenting within the NeurBot environment various things (e.g.,identities, objects, actions, etc.). In this regard, informationrepresenting those things can be incorporated into a hologram (e.g., avolume hologram), and accessed (or read) and processed by the variouscomponents/systems disclosed herein that might feed the information intothe NeurBot environment for example,

In a typical implementation, a volume hologram is a type of photographicrecording of a light field, and it is used to display a fullythree-dimensional image of the holographic subject, which is seenwithout the aid of special glasses or other intermediate optics. Theimage is usually unintelligible (e.g., not visible) when viewed underdiffuse ambient light. It is an encoding of the light field as aninterference pattern of seemingly random variations in the opacity,density, or surface profile of the photographic medium. When suitablylit (e.g., with a laser), the interference pattern diffracts the lightinto a reproduction of the original light field and the objects thatwere in it (e.g., that represent the thing) appear to still be there,exhibiting visual depth cues such as parallax and perspective thatchange realistically with any change in the relative position of theobserver.

In a typical implementation, a volume hologram is a hologram that isincorporated into some volume of material (e.g., a glass block), asopposed to a flat surface. In a typical implementation, utilizing avolume hologram, instead of a flat hologram, enables the incorporationof far more data, which may be desirable because the data representingthe associated things can be much more complex and, therefore, moresecure. Also, utilizing a more complex scheme for representing theassociated things provides for a greater vocabulary for identifyingdifferent things.

At a high level, the optical identification system OISs (e.g., NB-OIS)disclosed herein is a system that is configured to access and/or processinformation stored in volume holograms on optical substrates. The OISmay be connected to a NeurBot, or into a NeurBot environment or networkto facilitate identifying different things. This is one use of the OISdisclosed herein. However, it may be used in other applications, aswell.

FIG. 1 is a schematic representation showing one exemplaryimplementation of an optical identification system (OIS) 100.

The illustrated OIS 100 includes: a laser 102, a camera 104, acomputer-based processor 106, a computer-based memory 108, a(normally-open) relay switch 110, and a communication bus 112. Anoptical identifier 114 (incorporated into a volume hologram on anoptical substrate) is positioned between the laser 102 and the camera104. In a typical implementation, the volume hologram can be removedeasily by hand from its position between the laser 102 and the camera104, and a different volume hologram (with a different opticalidentifier 114) can be put in its place. In the illustratedimplementation, the computer-based processor 106 is coupled to thecommunication bus 112, to the camera 104, to the relay switch 110, andto the computer-based memory 108, and the relay switch 110 is connectedto the laser 102. By way of example but not limitation the computerbased processor can be a Raspberry Pi 3 Model B+ Mini Computer with HighPerformance Heatsink Set configured with a Raspberry Pi Camera.

In some implementations, the OIS 100 will include a physical holder orguide to receive, and hold, the optical identifier 114 between the laser102 and the camera 104. The physical holder or guide may help ensurethat any optical identifier placed therein is positioned correctlyrelative to the laser 102 and the camera 104 to ensure that an image ofthe data on the optical identifier is produced by virtue of the laserimpinging the optical identifier 114 and is captured by the camera 104.

In a typical implementation, during operation, the processor 106 mayreceive an instruction (e.g., via the communication bus 112) to read oraccess information in the optical identifier 114, which is positioned,as shown, between the laser 102 and the camera 104. In response toreceiving this instruction, the processor 106 sends a signal to therelay switch 110 that causes the relay switch 110 to close and therebydeliver electrical energy to the laser 102 causing the laser to turn on.In some instances, the instruction may be generated automatically whenthe optical identifier is positioned between the laser and camera.

When the laser 102 turns on, the laser 102 delivers laser light throughits lens 2 toward the camera 104. In one implementation, this mayinclude a 5 mW 532 nm Green Laser Module (3V 11.9 mm) from FastTech.Since the optical identifier 114 (with the volume hologram) ispositioned between the laser 102 and the camera 104, the laser lightpasses through the optical identifier as it travels from the laser 102toward the camera 104 creating a projected image (of the volumehologram) at a downstream side of the optical identifier 114. Thisprojected image ends up at the lens 1 of the camera 104.

In a typical implementation, the processor 106, in response to receivingthe instruction to read or access information in the optical identifier114, also sends a signal to the camera 104 that causes the camera tocapture the projected image at a time that corresponds to the projectedimage being produced at the lens 1 of the camera 104. The instructionthat is sent to the camera 104 may be sent at the same time as, orshortly thereafter, the instruction is sent to the laser 102. Inresponse to the instruction, the camera 104 takes a digital picture ofthe representation of the projected image, and, in a typicalimplementation, the processor 106 stores digital data representing theprojected image in the computer-based memory 108.

In a typical implementation, after the laser 102 has been on for acertain period of time (typically very briefly, e.g., less than amillisecond or two), the processor 106 causes the relay switch 110 toopen, thereby cutting off power to the laser 102 and causing it to stopproducing the laser light. This, of course, terminates the projection ofthe image onto the lens 1 of the camera 104.

The data in the optical identifier 114 (in the volume hologram) can takeany one of a variety of different forms. In one example, the data in theoptical identifier 114 forms or includes a code page. A code page maybe, e.g., a table of values that describes a character set used forencoding a particular set page may be a table of characters from a setof characters such as the set of ASCII characters. A code page may be animage. A code page could be a representation of analog data. Pretty muchanything a picture can capture can be a code page. In someimplementations, a code page is a QR code of characters, which may becombined with a number of control characters.

The computer-based memory can be used to store the digital data capturedby the camera 104 and/or to store instructions (e.g., machine code) forcertain processor 106 operations.

In certain exemplary implementations, an OIS may include:

-   -   1. computer readable media having machine code (and/or other        data) stored therein;    -   2. a processor with memory configured to load and perform        machine code from said media, during boot (e.g., the initial set        of operations that a computer system performs when turned on),        where the processor is connected to a relay switch that is        connected to a laser, where machine code-triggered action of the        processor enables or delivers a signal to the relay switch to        enable the laser light (e.g., turn on the laser light beam),        and, subsequently disables the signal to relay switch, e.g., to        turn the laser light beam off);    -   3. the laser connected to the relay switch, where the laser is        (preferably optimally) positioned so that when the processor        enables the relay switch, the relay switch will enable or cause        the laser to emit a laser light beam onto the surface of an        optical identifier to illuminate a code page (stored as a volume        hologram on an optical substrate of the optical identifier) to        produce a projected image of the code page on a lens-1 of a        digital camera; and where    -   4. the processor is connected to the digital camera, where the        processor signals the camera to capture a representation of the        projected image (e.g., by enabling an aperture subassembly of        the camera) as digital data, which can be, and typically is,        then stored in memory.

With respect to the aperture subassembly, in some implementations, adevice called a diaphragm usually serves as an aperture stop, andcontrols the aperture. The diaphragm functions much like the iris of theeye—it controls the effective diameter of the lens opening . . . . Alower f-number denotes a greater aperture opening which allows morelight to reach the film or image sensor.

Moreover, in certain exemplary implementations, in response to receivingon the communication bus 112, a communication representative of arequest for the processor to perform an action, the processor performsmachine code-triggered actions of:

-   -   1. signaling the relay switch to cause the laser to emit a light        beam onto the surface of the optical identifier to illuminate        the optical identifier under a particular set of conditions that        include wavelength during reading, angle, polarization state of        the reader beam, how the identifier is rotated about the axis of        illumination, and other reconstruction parameters, and produce        an image of the data (e.g., code page) from the optical        identifier projected onto lens-1 of camera;    -   2. signaling the camera to take a digital picture of the        representation of the projected image for storing as digital        data in memory;    -   3. signaling the relay switch to disable the laser light (or        simply removing the previously-applied signal) so that the relay        switch opens);    -   4. algorithmically interacting with the digital data to generate        a response to the request in memory; and,    -   5. communicating a representation of the response over the        communication bus.

The foregoing processes, in some implementations, are intended to coverthe case where a raspberry pi processor is executing machine code thatinteracts with an electromagnetic waveform device such as but notlimited to a wireless receiver or a microphone, to receive acommunication representative of a communicated request for the processormachine code to consider. The machine code considers the request byevaluating the request in the context of things in its vocabulary tocompute a performable statement, and then performs machine code thatperforms the performable statement. This may result in a non-emptyresponse. The machine code then performs the format machine code toformat the response. The machine code then interacts with anelectromagnetic waveform device, such as, but not limited to, thewireless transceiver or a configured speaker, to communicate arepresentation of the response as the response to the request.

In various embodiments, the communication bus 112 can be wired (by wayof example but not limitation: a serial bus; an i2c bus; a bus wired toa mobile device dock or installed within an appliance's housing), can bewireless (using protocols such as Bluetooth, Zigbee, LoPAN, WiFi, orother wireless communication protocols), or can include a combination ofwired and wireless communication technologies.

FIG. 2 is a schematic representation showing another exemplaryimplementation of an OIS 200. The OIS 200 in FIG. 2 is similar to theOIS 100 in FIG. 1 . For example, the OIS 200 in FIG. 2 has the samebasic components as the OIS 100 in FIG. 1 including a laser 102, acamera 104, a computer-based processor 106, a computer-based memory 108,a relay switch 110, and part of a communication bus 112. In someimplementations, there is a physical holder or guide to hold the opticalidentifier between the laser 102 and the camera 104. However, in the OIS200 of FIG. 2 , these NB-OIS 200 components are configured (e.g.,mounted) on a circuit board 214. with power (+) and ground (−) leadsbeing connected to solder points (or terminals) 216 a, 216 b on thecircuit board 214, and one or more communication ports (connected to acommunication bus) provided as one or more solder points (or terminals)216 c on the circuit board 214. In one embodiment, a clock line (e.g.,SCL) and a data line (e.g., SDA) of an i2c communication bus are used asthe communication bus 112. In a second embodiment the transmit (Tx) andreceive (Rx) lines of a serial communication bus are used as thecommunication bus 112. In a third embodiment, the Tx, Rx lines are usedalong with a signal line as the communication bus 112.

FIG. 3 is a schematic representation showing another exemplaryimplementation of an OIS 300. The OIS 300 in FIG. 3 is similar to theOIS in FIG. 2 . For example, the OIS 300 in FIG. 3 has the same basiccomponents as the OIS 200 in FIG. 2 including a laser 102, a camera 104,a computer-based processor 106, a computer-based memory 108, a relayswitch 110, and part of a communication bus 112, and all of thesecomponents are configured (e.g., mounted) on a circuit board 214. Insome implementations, there is a physical holder or guide to hold theoptical identifier between the laser 102 and the camera 104. Thecommunication bus 112 in FIG. 3 includes an i2c clock line (e.g., SCL)and an i2c data line (e.g., SDA). Moreover, the power (+) and ground (−)lines of the NB-OIS 300 are connected to a micro USB (e.g., Female) JackPort Socket Connector 316, and SCL and SDA are connected to solderpoints. Other embodiments can use other types of power connectors.

In certain embodiments, the NB-OIS (e.g., 100, 200, 300, etc.) and/orany or all of the NB-OIS components can be fabricated as a SOB (systemon board). The SOB can be placed in a housing to secure the SOB and theNB-OIS components within the housing. The housing can be fabricated forthe size of the SOB, and have exterior Tx and Rx solder points, forexample, connected through the housing to the Tx and Rx of the NB-OISboard. Similarly, the housing can be fabricated to enable (or include) apower management system to provide power to the NB-OIS board, such as acut-out for a micro USB jack to extend from the board through thehousing, enabling a micro USB adapter to be connected through the cutout. For a reference design showing this type of connection, see, forexample, the Raspberry Pi 3 micro USB jack. The phrase “power managementsystem” should be construed broadly herein to include virtually any kindof power supply, such as a battery, an AC adaptor, etc. that providesthe power to run the system (e.g., without overloading it).

There are many housings available that may serve this purpose or beadapted to serve this purpose. One example is a Pi-Supply Pi Poe Case,from Allied Electronics & Automation.

In some embodiments, one or more of the lines Tx, Rx, Power (+), Ground(−), are connected to general-purpose input/output (GPIO) pinspositioned to enable a jumper wire to be pushed through a cut-out in thehousing onto a said pin. The jumper wire extends from the pin, outthrough the housing. In a typical implementation, a GPIO pin is ageneric pin on an integrated circuit or computer board whosebehavior—including whether it is an input or output pin—is controllableby the program at run time.

In some embodiments, the housing is designed to house an NB-OIS boardthat is connected to a portable battery power management subsystem witha battery that is connected to a QI charging receiver. QI is an openinterface standard that defines wireless power transfer using inductivecharging over short distances. In a typical implementation, the systemmay use a charging pad and a compatible device, which is placed on topof the pad, charging via resonant inductive coupling. The QI chargingreceiver is placed with the housing such that the QI charging receiverwill be within the manufacturer specification of required proximity to aUniversal Qi Wireless Charging transmitter when the housing is placed ona said transmitter to enable the battery to be wirelessly charged. Thehousing can be fabricated for the size of the SOB. The connection of theTx and Rx lines from the board to the exterior of the housing can bethrough the use of solder points or pins to which jumper wires can beattached. In some implementations, an alternative type of connection maybe used.

FIG. 4 is a schematic representation showing part of an exemplary OIS400. The part of the OIS 400 shown in FIG. 4 has a laser 102 (with lens2), a camera 104 (with lens 1), an optical identifier 114, and mirrors418 a, 418 b. The mirrors 418 a, 418 b, in the illustratedimplementation, are configured to direct laser light exiting the opticalidentifier toward the lens 1 of the camera 104. More particularly, inthe illustrated implementation, the laser 102 emits a light beam fromlens-1 onto optical identifier (O.I.) to illuminate an embedded hologramas an image onto a reflective front surface of mirror-1 418 a thatreflects off of mirror-1 418 a onto a reflective front surface ofmirror-2 418 b, which is positioned to further reflect the image ontolens-1 of camera-1. The mirrors in the illustrated implementation arefront surface mirrors, meaning that the front surfaces of those mirrors(that are shown to be reflective in the illustrated figure) are, infact, reflective.

The mirrors in the configuration shown in FIG. 4 are configured so thatthe laser light travels in a first direction from the laser lens 2 tomirror-1 418 a, so that the laser light travels in a second direction(orthogonal to the first direction) from mirror-1 418 a to mirror-2 418b, and in a third direction (parallel to, but opposite the firstdirection) from mirror-2 418 b to the lens-1 of camera 104.

The configuration in FIG. 4 represents only one of many possible OISconfigurations that could involve mirrors. Indeed, any number of mirrors(e.g., one or more) may be configured and used to direct laser lightalong a path from the laser, through the optical identifier, and to thecamera. In some implementations, one or more of the mirrors may bepositioned “upstream” (on the laser light path) from the opticalidentifier. In some implementations, one or more of the mirrors may bepositioned “downstream” (on the laser light path) from the opticalidentifier. In some implementations, one or more of the mirrors may bepositioned “upstream” (on the laser light path) from the opticalidentifier, and one or more of the mirrors may be positioned“downstream” (on the laser light path) from the optical identifier. Someimplementations may include (in addition to or instead of the one ormore mirrors), one or more other types of optical elements (e.g., lensesor the like) to direct, focus, collimate, etc. the laser light in adesired manner. Any such optical elements (mirrors, lenses, or the like)can have a variety of different physical and optical configurations.

FIG. 5 is a schematic representation showing part of an exemplary OIS500. The OIS 500 in FIG. 5 is similar to the OIS 400 in FIG. 4 . Forexample, the OIS 500 in FIG. 5 has a laser 102 (with lens 2), a camera104 (with lens 1), an optical identifier 114, and mirrors 418 a, 418 b.Additionally, mirror-1 and mirror-2 in the OIS 500 of FIG. 5 are placedin a retractable mirror housing 520 such that an action can be performedto move the housing to expose lens-1 of the camera 104. In someembodiments, the action may include lifting, sliding, pushing, pulling,turning, etc. The action may be mechanical, electrical, or manual.

This can serve several purposes. Firstly, in some embodiments, the laserlight interrogates the hologram and projects an image onto the mirrorwhich is then bounced onto another mirror and then back to the camera.If the mirror housing is moved, then the image might be projected in astraight line. This means we could effectively project the image outsideof the current unit if we put a small hole in the raspberry pi housingunit (at the correct position of course). If we can project it to theexternal world, then we could use this to communicate with an externalmachine. Secondly, if we move the mirror housing, it means we could havea clear line of site back to the camera. Again, a second similar devicecould have its mirror housing retracted, and it could project an imageonto the camera of this first unit. The idea is similar to “pairing” butdone optically.

The mirror housing 520 can be positioned to enable the O.I. 114 to beinterrogated and the mirror housing retracted to enable the cameralens-1 field of view to not be obstructed by the mirror housing 520. Ina handheld unit, the operator can retract the mirror housing and use thedevice to produce an image onto a second device's camera to opticallycommunicate information from the first device to the second device. Insome implementations, one can build a raspberry pi with the relay,laser, camera, mirror housing, and power management system provided by abattery. One can put all this in a housing, and then you have a handheldversion of the device.

FIG. 6 is a schematic representation showing part of an exemplary OIS600. The part of the OIS 600 shown in FIG. 6 has a laser 102 (with lens2), and a camera 104 (with lens 1). An optical identifier 114 ispositioned in a light path from the laser 102 to the camera 104. Thereis a reflective surface 602 at a side of the optical identifier 114opposite the side of the optical identifier 114 where the laser lightenters the optical identifier 114. A volume hologram (with a code page,for example) in inside the optical substrate of the optical identifier114 between the surface of the optical substrate through which the laserlight passes and the reflective surface 602 inside the opticalsubstrate, or on the reflective surface 602. The reflective surface 602can be part of a mirror or can be reflective coating, for example. Boththe laser 102 and the camera 104 are angled relative to the opticalidentifier 114 and the reflective surface 602 is configured such thatlaser light from the lens 2 of the laser 102 can pass through theoptical identifier 114 at an angle, reflect off the reflective surface602 at another angle and reach the lens 1 of the camera 104 directly.The reflective surface 602 in the illustrated implementation issubstantially parallel to the surface of the optical substrate throughwhich the laser light passes.

Thus, in the illustrated implementation, during operation, the laser 102produces a laser beam and emits that laser beam from lens-2 onto opticalidentifier (O.I.) 114. The laser light enters the optical identifier 114through its front surface. Inside the optical identifier, the laserlight illuminates a volume hologram that may be coated on or affixed toa reflective backing or placed in front of a mirror. The laser lightexits the front surface of the optical substrate and creates an image onlens-1 of camera 104. The camera 104 captures the image. Generallyspeaking, in a reflection hologram, a reference wave and an object waveentering an emulsion (or light sensitive coating) from different sidesproduces interference fringes in planes that are parallel to the planeof the emulsion. The image can be observed by viewing the reflectionfrom the plate.

In some embodiments, the image (e.g., of the code page or other data inthe volume hologram) is a real image. In some embodiments, the image isa virtual image. In optics, a virtual image is an image formed when theoutgoing rays from a point on an object always diverge. The imageappears to be located at the point of apparent divergence. Because therays never really converge, a virtual image cannot be projected onto ascreen. In contrast, a real image is one that is formed when theoutgoing rays form a point converging at a real location. FIG. 7 showsan exemplary implementation of an optical identifier that includes anoptical substrate 721 and a volume hologram 722 in the optical substrate721. The illustrated optical identifier may be manufactured with asection of the unit (or optical substrate) removed (to form a cut-outsection) and the hologram 722 is placed on a material (e.g., anotherpiece of optical substrate) that can be affixed over the cut outsection. One can think of it like a credit card (e.g., a flat substrate)with a hole in the middle of it. The hologram is placed onto a stickyadhesive that is placed over the hole. This way, when the light (e.g.,laser light) hits it, the image can be transmitted out the other side.

FIG. 8 shows two different holding apparatus configurations for an O.I.Any one of these holding apparatuses can be used to hold an opticalidentifier in place in any of the optical identification systems (e.g.,100, 200, 300, etc.) disclosed herein. Referring to FIG. 8 , the O.I.114 can be positioned in an O.I. holding apparatus (e.g., a channel 824a or a tray 824 b) appropriately positioned between the lens of anilluminating device (e.g., laser), and the lens of a camera. In oneembodiment, the O.I. holding apparatus 824 a is a channel with a flatbottom and two sides that extend orthogonally, in an upward directionfrom opposite sides of the flat bottom. The channel is dimensioned sothat the optical identifier 114 can be slid (in an uprightconfiguration, as shown) into the channel, and so that the two sides ofthe channel contact or are very close to the front and rear surfaces ofthe optical identifier 114. In a second embodiment, the holdingapparatus 824 b is a tray 824 b with a transparent core, a cut-awaycore, or other such design where the optical identifier 114 can besecurely placed; and where the laser can be positioned to illuminate theoptical identifier 114 and project the image onto the camera lens. Thetray 824 b in the illustrated implementation has a flat bottom surfaceand four side surfaces that extend orthogonally in an upward directionfrom the bottom surface. The holding apparatus can be manufactured inother form factors as well, and may be configured as required for thepurpose of the desired assembly.

In a typical implementation, the holding apparatus, whatever itsconfiguration, is in a fixed position relative to the laser, or thecamera, and, preferably, both. This way, when the optical identifier 114is positioned in the holding apparatus, the optical identifier will becorrectly positioned to be read. An example of this is represented inFIG. 9 .

The system represented in FIG. 9 , includes an O.I. reader holdingapparatus (H.A.) 924 such as a mount, where an O.I. can be positionedwithin the mount to enable interrogation of the O.I. volume hologram.

In some implementations, the holding apparatus 924 has a contact switch(not shown) that is configured so that when contact with the contactswitch occurs (as might happen when the O.I is placed into the holdingapparatus), the contact switch is triggered, which results in the laser102 turning on and emitting a light beam onto the volume hologram of theO.I. positioned in the holding apparatus, to produce an image on lens-1of camera 104. In some implementations, the contact switch will also beconfigured such that contact with the contact switch (e.g., when theO.I. is placed into the holding apparatus) causes the camera to captureany image being projected onto its lens. More particularly, the cameraaperture apparatus can be enabled to take a picture of the image asdigital data to be stored in non-transitory memory. In variousimplementations, the contact switch may be positioned in the bottomsurface of the holding apparatus or in any side surface of the holdingapparatus.

In other implementations, the holding apparatus may include anon-contact sensor (instead of the contact sensor mentioned in theprevious paragraph) to sense the presence of an optical identifier inthe holding apparatus. Examples of non-contact sensors are capacitivesensors, infrared sensors, etc. In those implementations, thenon-contact sensor may be configured to perform a function similar tothe function described above as pertaining to the contact sensor.

In one embodiment, the O.I. is permanently mounted in the holdingapparatus 924. In a second embodiment, the O.I. is easily removable fromthe holding apparatus. For example, one can place a hologram into aholding apparatus, and encase the whole thing in a housing. This meansthe manufacturing process for a IoT device can be assembled to massproduce things with a hologram already built in. Each device wouldinclude machine code that can use the hologram to provide the devicewith an identity and identifiers.

FIG. 10 is a schematic representation showing part of an exemplaryoptical identification system (OIS) 1000 for reading an opticalidentifier. The part of the OIS 1000 shown in FIG. 10 has a laser 102(with lens 2), a camera 104 (with lens 1) and a holding apparatus 1024for an optical identifier (having a volume hologram therein, asdescribed herein). There is a reflective surface 1026 at a side of theholding apparatus 1026 opposite the optical identifier. Duringoperation, the laser 102 transmits light at a first angle (e.g., between20 and 80 degrees from normal to the front surface of an opticalidentifier in the holding apparatus 1024. The light passes through theoptical identifier in the holding apparatus, is reflected back off ofthe reflective surface 1026 at a second angle (the same as the firstangle, but in the opposite direction), and passes back through theoptical identifier. The reflected light exits the optical identifier andimpinges lens 1 of camera 104. The camera 104 captures an image of thevolume hologram based on the reflected light.

In the FIG. 10 implementation, the holding apparatus includes the mirrorbacking (or reflective surface) so that the optical identifier itselfdoes not need a reflective backing. In some implementations, however,the optical identifier might have a reflective surface on one sidethereof, and, in those implementations, the holding apparatus would notneed to include the mirror backing (or reflective surface) to produce areflected hologram.

Some embodiments may forgo the holding apparatus and simply have thelaser lens on the exterior of the device housing and the camera lens onthe exterior of the device housing so that a user can simply hold areflective hologram up to the machine and have the laser light beampositioned to interrogate the hologram and the reflective coatingreflect the image onto the camera lens. In such an implementation, theprocessor (executing the machine code) periodically runs the camera'smachine code driver to cause the camera aperture apparatus to capture animage, and attempts to algorithmically decode the image code page asdigital data. In some implementations, this is the case where it islooking for a QR code to scan. So it periodically is running the machinecode to take a picture, and attempting to see if it can recognize a QRcode.

In some embodiments, a processor may be configured to perform (e.g., byexecuting computer-readable instructions) the following steps (which maybe performed in this sequence):

-   -   1. signaling a relay switch to provide power to the laser 102        and thereby cause the laser 102 to emit a light beam onto the        surface of an (appropriately positioned) optical identifier O.I.        114 to illuminate the optical identifier 114 under a particular        set of conditions (e.g., including wavelength during reading,        angle, polarization state of the reader beam, how the identifier        is rotated about the axis of illumination, and other        reconstruction parameters), and create an image projected onto        lens-1 of camera 104;    -   2. signaling the camera 104 to take a digital picture of the        projected image as code page digital data, which may be stored        in memory; and    -   3. signaling the relay switch 110 (or allowing the relay switch)        to discontinue providing power to the laser 102 and thereby        disabling the laser light (e.g., after the digital picture has        been taken).

The code page digital data captured in the digital picture taken by thecamera can be used by the system (e.g., the NO-OIS 100) in a variety ofways.

For example, in some embodiments, the code page digital data is storedonce in the computer-based memory 108 and may be accessed and interactedwith as needed using algorithmic steps embodied as machine code (e.g.,performed by the processor 106). In those embodiments, the code pagedigital data may be retained in the computer-based memory until theNB-OIS (e.g., 100) is shutdown, and/or beyond that point. Thus, the codepage can be retained in memory so that whenever any algorithmic step(e.g., a step of any algorithm being executed by a computer-basedprocessor, for example) requires the use of the data, it is already inmemory and need not be reimaged.

In some embodiments, the processor 106 (executing machine code), orother processor(s), may perform actions to generate a random number(e.g., by using a random number generator), encrypt the code pagedigital data (using the random number), and retain the random number inthe computer-based memory so that the stored random number can be usedlater (e.g., by the processor 106, or some other processor) to decryptthe encrypted code page digital data when required. This is so that ifthe machine were hit with a memory grab, for example, then the memorymay not have the decrypted content of the code page. In an embodiment,machine code (software) is performed to generate a cipher key, such asbut not limited to using a pseudo random number generator algorithm. Theprocessor further executes machine code designed to perform thealgorithmic steps of a cipher that acts upon the cipher key and thedigital data representative of the code to cipher the data. This is sothat if the machine were hit with a memory grab, for example, then thememory may not have the decrypted content of the code page.

In yet another example, in some embodiments, the code page digital datais retained in the computer-based memory 108 for a relatively shortperiod of time only to enable the processor 106 to perform algorithmicsteps of a procedure that requires or relies upon the code page digitaldata, and is then unset (deleted) from the computer-based memory 108. Inthese types of embodiments, the machine code may cause the processor 106to perform actions of:

-   -   1. signaling the relay switch 110 to connect power to (and        therefore cause) the laser 102 to emit a light beam onto the        surface of an appropriately positioned optical identifier O.I.        114 to illuminate the optical identifier 114, which produces an        image that is projected onto lens-1 of camera 104;    -   2. signaling the camera 104 to take a digital picture of the        representation of the projected image as code page digital data,        which may be stored in the computer-based memory 108; and,    -   3. signaling the relay switch 110 to disconnect power from the        laser 102 and thereby disable the laser light (after the digital        picture has been taken);    -   4. performing one or more algorithmic steps of a procedure        (e.g., embodied as machine code) that involves accessing and        interacting with the code page digital data to set a second        memory required in performing an algorithmic step; and    -   5. after the procedure is performed, executing machine code to        overwrite the code page digital data in the computer-based        memory (e.g., with all zeros).

In an embodiment, machine code is performed to generate a cipher key,such as but not limited to using a pseudo random number generatoralgorithm. The processor further executes machine code designed toperform the algorithmic steps of a cipher that acts upon the cipher keyand the digital data representative of the code to cipher the data. Thisis so that if the machine were hit with a memory grab, for example, thenthe memory may not have the decrypted content of the code page.

Moreover, in an embodiment, the algorithmic steps of a procedure,embodied as machine, are performed by the processor to perform the stepsof accessing and interacting with the code page of digital data to set asecond memory required in performing an algorithmic step of a procedure.By way of example, but not limitation, the memory may be representativeof a boot block address required by a procedure to boot a machine, a keyto cipher data, or a hash key to match against the computed hash of asecond memory.

In some implementations, an optical identifier includes a single codepage of digital data. However, in some implementations, a single volumehologram (in a single optical identifier) includes more than one singlecode page of digital data. And the foregoing embodiments can be adaptedto capture and process more than one single code page of digital data(e.g., simultaneously). By way of example but not limitation, theembodiment can configure the laser to use multiple wavelengths and orposition it for multiple angles. Similarly, an embodiment can usemultiple light emitting devices and cameras.

Code Page Digital Data as Units of Digital Data

The code page digital data can include a set of units of digital datawhere a unit of digital data is an embodiment of digital data innon-transitory memory that an implementation of an algorithmicprocedure, embodied as machine code, can act upon. Thus, for example,there can be multiple discrete units of digital data wherein a firstmachine code might act upon a first unit, and a second machine codemight act upon the second. The data representation typically isdependent on the base numbering system used. For example, in decimal,the data is 0-9, in hex 0-16. Note that in hex, 0-16 is 0-F. Thus, inhexadecimal 16 may be written as F so hex includes 0-9 and A-F. The datamay be encoded as a QR-Code and, if that is the case, then the volumehologram image may look like a QR code. The benefit is a QR Code hasbuilt in error checking. Note though, it does not have to be QR Code.Some alternative with built in error checking could be used.

Each one or more units of digital data in a code page of digital datacan be an identifier, content, machine code, a thing (or representativeof a thing), and/or a unique identifier. Digital data can be treated asif it were one unit of data, like all the digital data that represents asingle photo. Alternatively, it can represent units of digital data suchas an identifier, content, machine code, a thing, a unique identifier,etc.

Unit of Digital Data as an Identifier

In some embodiments, one or more of the units of digital data (in a codepage of digital data) can be recognized (e.g., by the OIS or by an NBnetwork connected to the OIS) as an identifier. By way of example, butnot limitation the identifier may conform to a published specificationsuch as:

-   -   1. An Internet Society published standard, in which case, the        one or more units of digital data may be:    -   a. an International Resource Identifier as defined, for example,        by the current published Internet Society Standards        Organization, such as RFC 3987; or,    -   b. a Uniform Resource Identifier as defined by the current        published Internet Society Standards Organization, such as RFC        3986;    -   2. An International Standard, such as the International Mobile        Subscriber Identity as defined by the International Mobile        Subscriber Identity (IMSI) Oversight Council (IOC);    -   3. A GS1 standard, in which case, the one or more units of        digital data may be GS1 Identification Keys, EAN/UPC,        (International or European Article Code/Universal Product Code).

Unit of Digital Data as Content

In some implementations, one or more of the units of digital data can berepresentative of digital content (e.g., stored in non-transitorymemory). By way of example, but not limitation, the digital content mayconform to a published specification such as:

-   -   1. HTML 5.1 2nd Edition, W3C Recommendation 3 Oct. 2017;    -   2. Extensible Markup Language (XML) 1.0 (Fifth Edition), W3C        Recommendation 26 Nov. 2008;    -   3. A WHATWG HTML specification, such as Microdata; or    -   4. A schema.org specification such as a published Schema.

Digital Data and Machine Code

In some implementations, one or more of the units of digital data can be(or be representative of) machine code that the processor (e.g., 106)can execute to perform an associated action. In one example of such anembodiment, the machine code can be for a program that is executable bya computer processor (e.g., 106). The system may load the program(machine code) into executable memory (e.g., computer-based memory 108)for performing (e.g., by the processor 106).

In this regard, the NB-OIS processor 106 may perform actions comprisingthe steps of:

-   -   1. loading a unit of digital data representative of machine code        into executable memory (e.g., computer-based memory 108); and,    -   2. performing one or more actions based on the machine code        loaded into the executable memory.

In this regard, the NB-OIS processor 106 may perform actions comprisingthe steps of: computing by interrogating an optical identifier a unit ofdigital data representative of machine code; loading said code intoexecutable memory; and, performing said machine code. This methodprecludes malware from being injected into the encoded machine codeafter the optical identifier has been produced.

In some instances, the machine code (i.e., that was encoded into thehologram) is dynamically loadable machine code (such as a shared libraryor a dynamic link library) and the machine code is dynamically loadedand performed. Dynamic loading is a mechanism by which a computerprogram can, at run time, load a library (or other binary) into memory,retrieve the addresses of functions and variables contained in thelibrary, execute those functions or access those variables, and unloadthe library from memory. Dynamic loading allows a computer program tostart up in the absence of these libraries, to discover availablelibraries, and to potentially gain additional functionality.

In some implementations, one or more of the units of digital data is anidentifier representative of an entry point in code (e.g., thedynamically loadable machine code), where the machine code is loadedinto executable memory and the entry point resolves to an executableaddress in the executable memory, and the NB-OIS processor performsactions in accordance with the machine code at the address.

In some implementations (e.g., in a Thing Machine), one or more of theunits of digital data are representative of a statement that a firstverb action can parse as a first graph of Things that a second verbaction can evaluate in the context of the domain of discourse to computea second graph of Things representative of a performable statement thata third verb action can cause the performance thereof. In a ThingMachine embodiment machine code is performed to manage a set of Thingseach as a unit of non-transitory memory wherein each Thing is comprisedof the same set of components including a first identifier, a value, anda relationship set describing how a first Thing relates to a secondThing. A Thing representative of performable machine code is referred toas a machine verb action and the Thing's identifier is a namerepresentative of the action. A machine verb action can act upon a setof Things referred to as machine nouns. A Thing can be representative ofa machine vocabulary including machine verbs, machine nouns, and otherThings that modify meaning. A set of Things can represent a statement.The Thing Machine's vocabulary includes:

-   -   an “interrogate” machine verb to perform the action of        interrogating an optical identifier to compute code page digital        data;    -   a “parse” machine verb to perform the action of parsing the        digital data to compute a Thing representative of a statement;    -   an “evaluate” machine verb to perform the action of evaluating        the statement in the context of the machine vocabulary to        compute a performable statement; and    -   a “perform” machine verb to act upon the performable statement        Thing to perform a machine verb identified in the performable        statement.

In some implementations, one or more of the units of digital data is (orrepresents) a statement that can be performed by a computer processorexecuting machine code representative of an interpreter. By way ofexample, this may be a statement that a Linux bash shell can interpretand act upon.

Digital Data as a Thing

In an embodiment of a Thing Machine (from NeurSciences LLC), one or moreof the units of digital data can be representative of Things that aP(TM(i)) can act upon. A P(TM(i)) may be considered a process that canbe performed by a Thing Machine.

By way of example, but not limitation, a unit of digital data can be (orrepresent):

-   -   1. an authorization;    -   2. machine code to be loaded into the processor 106 and        performed by the processor 106;    -   3. a URI;    -   4. a URR;    -   5. a symmetric key;    -   6. an asymmetric public key;    -   7. an asymmetric private key;    -   8. a cipher key;    -   9. a hash key;    -   10. a performable action;    -   11. a statement to be parsed;    -   12. a request for the processor to evaluate;    -   13. a primary key for a database lookup;    -   14. an identifier;    -   15. a machine code; or    -   16. content to be acted upon by a Thing Machine.

Unique Identifiers

A unique identifier (UID) is a sequence of characters that is associatedwith, and identifies to the system, one or more entities, for example,within the system. A driver's license number in a given state, anemployee badge number in a company, a bank account number within aparticular bank, and a unique serial number of a subscriberidentification module (SIM) card are examples of unique identifiers.

In some implementations, the processor 106, for example, can executemachine code to act upon an identifier to compute a unique identifier.By way of example, but not limitation, the processor may perform inaccordance with machine code to act upon a representation of a firstidentifier, and a representation of a second identifier, to compute athird identifier such as by performing a hash procedure. An exemplaryimplementation of an algorithmic procedure that may be performed by theprocessor executing machine code includes the actions of:

-   -   1. computing a candidate unique identifier (and saving it, e.g.,        in non-transitory memory);    -   2. searching a set of previously-computed, issued unique        identifiers (e.g., in non-transitory memory loaded, e.g., from        non-transitory computer readable media), to compare the        candidate unique identifier to the members of said set; and    -   3. if candidate unique identifier is in the set of issued unique        identifiers, then discarding the candidate unique identifier and        continuing the action sequence starting at step 1; or    -   4. if the candidate unique identifier is not in the set of        issued unique identifiers, adding the candidate unique        identifier to the set of issued unique identifiers (e.g., in the        non-transitory computer readable media).

Step 2 here may be performed, for example, to make sure that thecandidate is not already in existence.

This may include computing a hash key as a candidate unique identifier(and saving it, e.g., in non-transitory memory). Essentially, a hash keyis computer, and then the operating system is used to “create” an API totry and create a file by this name. If the file already exists, then thecreate API fails so the system concludes that the identifier is notunique.

In some embodiments, the unique identifier can be a unit of digitaldata, and an operating system service can be used to ensure thecandidate identifier is unique (i.e., step 2, above, i.e., it does notalready exist in a set of issued unique identifiers). By way of example,an operating system service can create a file in a file system with afile name representative of the candidate unique identifier. If the filealready exists, then the operating system's create file service willfail and the machine code will continue with step 1 (above). Note thatin this embodiment, the set of issued unique identifiers is the set ofcreated files.

A representation of the issued unique identifier can be used to identifya Thing in a Thing graph as administered by a P(TM(thing)) of a P(TM) ofa Thing Machine where machine code causes a processor to perform theaction of:

-   -   1. performing machine code to compute an asymmetric public key        and private key, key pair (and storing it, for example, in        memory);    -   2. performing machine code to interact with the asymmetric        public and private keys, and issued unique identifier (e.g., in        memory), to generate (and store, e.g., in memory) a        representation of a certificate signing request including a        representation of said public key and of said issued unique        identifier;    -   3. performing actions, based on the machine code, to interact        with the certificate signing request to compute an issued        certificate (e.g., to be stored in memory);    -   4. recording in a file (e.g., in computer readable media) the        issued certificate (or a representation thereof) where the        filename of the file is (or represents) the unique identifier;        and    -   5. recording in a second file (e.g., in computer readable media)        the private key (or a representation thereof) where the filename        of the file is (or represents) the unique identifier and where        the filename has a suffix identifier, such as “.pkey” or        “.private”.

Some instances include the algorithmic procedures of a data storingand/or executing a retrieval model, such as the procedures associatedwith a data access object, a file system, a DBMS, or cloud service suchas Amazon's cloud service, embodied as machine code, to provide theaction of storing either the digital data itself, or a representation ofit (such as an encoded version) such that, a processor executing machinecode can subsequently retrieve the representation.

Some embodiments include the algorithmic procedures of non-transitorycomputer readable media data management such as to set a representationof digital content in, or on, the media; to get the representation;and/or to unset the representation.

In some embodiments, the systems and/or techniques disclosed hereinenable representing a unique identifier to be encoded in a volumehologram and subsequently decoded (e.g., and stored into memory). Thenumber of character positions within the identifier, and the number ofpossible characters in each position can be sufficiently long to createa large set of possible unique identifiers. Furthermore, a pure randomnumber generator and, or analog device capturing random noise in nature,such as atmospheric noise, can be computationally used to further createuniqueness of the identifier.

Holographic memory, including, for example, volume holograms, has thepotential of high capacity data storage. In various implementations,information may be recorded such that all the data is recorded inmultiple parts (or every part) of the hologram so if part of thehologram is damaged or unreadable, the data can still be recovered. Datacan also be multiplexed by wavelength or by angle or incident light onthe same area. In those instances, the OIS may be configured to move themedia (i.e., the optical identifier) or change the laser wavelengthbeing provided to the volume hologram during reading. In instances wherethe media is to be moved, the optical identifier can be moved to accessdifferent data by an electrical motor (controlled by the processor, forexample) that rotates or otherwise moves the holding apparatus duringreading. In addition, or alternatively, if different wavelengths are tobe provided to read the volume hologram, the laser (or a laser assembly,with different lenses, for example) may be configured to providedifferent wavelengths of light into the optical identifier, undercontrol of the processor. In some instances, the data in a particularvolume hologram may be stored in parallel and read in parallel so allthe data can be read at once which makes holographic memory extremelyfast.

In one implementation, one or more bar codes and/or QR codes may berecorded into a volume transmission hologram. A camera then observes thevirtual image/images when reconstructed with laser which is interpretedby software to convert the image to text. Thereby, this QR code can beused as a “key” to encode private data and gain access to public data.

In one implementation, one or more bar codes and/or QR codes may berecorded into a volume transmission hologram. An illuminating deviceinterrogates the hologram to project an image. A camera then observesthe virtual image/images when reconstructed with laser. Machine code isperformed to interact with the camera to capture a representation of theimage as digital data which is interpreted by machine code that computesand saves in memory a representation of the corresponding text.

In some implementations, the systems and techniques disclosed hereinprovide a secure means of storing data which cannot be readily readwithout the aid of an optical interrogator (e.g., OIS). The opticalinterrogator thus becomes integral to the data storage. In someimplementations, the data storage is accomplished by using holographicmemory (e.g., a volume hologram in an optical substrate) which is fast,secure, and difficult to reproduce or copy, has high data density, isvery small, and is very inexpensive. The holographic memory can be usedas a key to encrypt private data, a key to access public data, data or asource of data in itself, etc. It can be used as a secure data keystorage for Bit coin transactions or credit card data.

In some implementations, an optical interrogator (OI) comprises: a) acoherent light source (e.g., a laser), b) a diverging lens, c) one ormore mirrors, d) a volume hologram of a QR code (or bar code, or someother data format), e) a camera, f) a laser/computer interface, g) acomputer (e.g., Raspberry PI), and h) software for converting, e.g., theQR code to text or data. The volume hologram can be a transmissionhologram of a QR code. The volume hologram can be a reflective hologramof a QR code. The volume hologram can be a transmission hologram of abar code. The volume hologram can be a reflective hologram of a barcode.

In some implementations, the holographic QR code stores some number ofcharacters (e.g., 256 or more) that can be imaged by the camera andinterpreted by QR code reader software. In some implementations, theholographic memory is no greater than 5 mm×5 mm.

The converted text can be used as a “key” to encrypt private data. Theconverted text can be used as a “key” to allow access to public data. Insome implementations, a volume hologram can be used to store a QR codeas an encoding key to encrypt private data. In some implementations, avolume hologram can be used to store a QR code as a software “key” toenable access to public data.

In some implementations, the systems and techniques disclosed hereininvolve an optical identifier that has more than one code page in theoptical identifier, and using more than one laser beam to illuminate themore than one code page (either simultaneously or sequentially). Anexample of this kind of system is shown in FIG. 11 . The system in FIG.11 includes two lasers 1102 a, 1102 b that are directed toward theoptical identifier 114 from two different directions. Each of the twolasers 1102 a, 1102 b is controlled (i.e., turned on and off) based oninput from its own relay switch 1110 a, 1110 b. These relay switches canbe configured to energize the lasers sequentially or simultaneously. Thecamera is controllable to capture an image whenever any one of thelasers is being energized. A power source is shown in the form of abattery 1150.

In some such implementations, the more than one laser beam can becontrolled to readout different multiplexed code pages represented inthe volume hologram with no moving parts. Using multiple code pages in asingle optical identifier, and more than one laser beam to illuminatethose multiple code pages, can increase the amount and types ofinformation that can be stored in a single optical identifier.

There are many ways in which one or more volume holograms can berecorded into an optical medium. In one example, a laser beam is splitinto two parts (see, e.g., FIG. 13 ). One part illuminates with linearpolarization an object mask of a QR code is made using ground glass andopaque material. Holographic recording material is placed a shortdistance away from this illuminated mask and normal to it. The secondpart is slightly diverged or converged or collimated based on thereconstruction wavelength and illuminates the hologram at an offsetangle (typically 45 degrees to 55 degrees). After development, thehologram can be placed in the optical interrogator where the hologrammay be illuminated with the reference beam. This illumination is at thesame angle and the construction if the reconstruction wavelength is thesame but will greater if the reconstruction wavelength is longer andsmaller if the reconstruction wavelength is shorter. The size of the QRcode image is larger if the reconstruction wavelength is longer and theQR code image is smaller if the reconstruction wavelength is shorter.One of the unique features of this QR code is the extremely low noise.The low noise is achieved through unique construction geometry andallows the storage of 256 characters or more to be stored in the QR codeand read by the camera in the optical interrogator.

A number of embodiments of the invention(s) have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention.

For example, the disclosure herein explains that a laser can be used todirect light toward an optical identifier to illuminate the volumehologram thereupon. However, other illumination sources, such as lightemitting diodes, etc. may be used for this purpose instead of lasers.

Moreover, the various system components can be arranged relative to eachother in a wide variety of ways. Various different optical elements(e.g., lenses, mirrors, etc.) can be incorporated into the system in avariety of ways. The sizes and shapes of the various optical elementscan vary as well. The laser(s) can be configured to produce anywavelength or wavelengths of light. The optical identifier, includingits optical substrate and/or volume hologram, can vary considerably. Forexample, the size (length, width, thickness, etc.) of the opticalsubstrate can vary. Likewise, the shape of the optical substrate canvary as well. The distribution and arrangement of data throughout or onthe optical substrate can vary as well. The holding apparatus for theoptical identifier can vary in size, shape and configuration. Themachine code referred to herein can take on any one or more of a varietyof possible forms of computer-readable instructions. A variety ofspecific physical configurations, such as circuit boards having solderpoints, micro USB connectors, mirrors, housings, holding apparatuses,etc. have been disclosed. The systems and techniques disclosed hereincan be implemented however without necessarily incorporating any of thespecific physical configurations disclosed herein. Moreover, someimplementations might combine features from any of the specific physicalconfigurations disclosed herein, and/or combine those any of thosefeatures with other features not specifically disclosed.

As another example, in certain implementations, the systems andtechniques disclosed herein can be combined with any other systems ortechniques not specifically disclosed herein.

Additionally, in various embodiments, at least some of the subjectmatter disclosed herein can be implemented in digital electroniccircuitry, or in computer-based software, firmware, or hardware,including the structures disclosed in this specification and/or theirstructural equivalents, and/or in combinations thereof. In someembodiments, the subject matter disclosed herein can be implemented inone or more computer programs, that is, one or more modules of computerprogram instructions, encoded on computer storage medium for executionby, or to control the operation of, one or more data processingapparatuses (e.g., processors). Alternatively, or additionally, theprogram instructions can be encoded on an artificially generatedpropagated signal, for example, a machine-generated electrical, optical,or electromagnetic signal that is generated to encode information fortransmission to suitable receiver apparatus for execution by a dataprocessing apparatus. A computer-based memory or computer storage mediumcan be, or can be included within, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination thereof. While a computer storagemedium should not be considered to include a propagated signal, acomputer storage medium may be a source or destination of computerprogram instructions encoded in an artificially generated propagatedsignal. The computer storage medium can also be, or be included in, oneor more separate physical components or media, for example, multipleCDs, computer disks, and/or other storage devices.

The operations described in this specification can be implemented asoperations performed by a data processing apparatus (e.g., a processor)on data stored on one or more computer-readable storage devices orreceived from other sources. The terms “processor,” and/or“computer-based processor” encompass all kinds of apparatus, devices,and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing. The apparatus can includespecial purpose logic circuitry, e.g., an FPGA (field programmable gatearray) or an ASIC (application specific integrated circuit). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question, forexample, code that constitutes processor firmware, a protocol stack, adatabase management system, an operating system, a cross-platformruntime environment, a virtual machine, or a combination of one or moreof them. The apparatus and execution environment can realize variousdifferent computing model infrastructures, such as web services,distributed computing and grid computing infrastructures.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyinventions or of what may be claimed, but rather as descriptions offeatures specific to particular embodiments of particular inventions.Certain features that are described in this specification in the contextof separate embodiments can also be implemented in combination in asingle embodiment. Conversely, various features that are described inthe context of a single embodiment can also be implemented in multipleembodiments separately or in any suitable subcombination. Moreover,although features may be described above as acting in certaincombinations, one or more features from a claimed combination can insome cases be excised from the combination, and the claimed combinationmay be directed to a subcombination or variation of a subcombination.

Similarly, while operations may be depicted in the drawings and/ordescribed herein as occurring in a particular order, this should not beunderstood as requiring that such operations be performed in theparticular order shown or in sequential order, or that all illustratedoperations be performed, to achieve desirable results. In certaincircumstances, multitasking and parallel processing may be advantageous.Moreover, the separation of various system components in the embodimentsdescribed above should not be understood as requiring such separation inall embodiments, and it should be understood that the described programcomponents and systems can generally be integrated together in a singlesoftware product or packaged into multiple software products.

The phrases computer-based memory, computer-readable medium,computer-readable storage medium, or the like, is intended to include,for example, non-transitory mediums.

Other implementations are within the scope of the following claims.

What is claimed is:
 1. A system comprising: a plurality of opticalidentifiers, each optical identifier comprising: an optical substrate;and a volume hologram in the optical substrate; and a reader for theoptical identifiers, the reader comprising: an illumination source; anda camera, wherein the illumination source is configured to direct lightinto a selected one of the optical identifiers to produce an image of acorresponding one of the volume holograms at the camera, and wherein thecamera is configured to capture the image, wherein the captured image isstored in a digital format by the system, wherein the optical identifieris multiplexed, and thus contains more than one code page, wherein eachof the code pages is used for a different purpose.
 2. The system ofclaim 1, wherein the reader further comprises: a switch coupled to theillumination source and to the camera, wherein the switch is switchableto turn the illumination source on and off and to cause the camera tocapture the image.
 3. The system of claim 2, wherein the reader furthercomprises: a computer-based processor, and wherein the switch is a relayswitch coupled to the computer-based processor, wherein the processor isconfigured to cause the relay switch to turn on, thereby deliveringpower to the illumination source, and wherein the processor isconfigured to cause the camera to capture the image.
 4. The system ofclaim 3, further comprising: non-transitory computer-based memorycoupled to the processor, wherein the processor is configured to storethe captured image, or some electronic representation of the capturedimage, in the non-transitory computer-based memory.
 5. The system ofclaim 3, wherein, after the image is captured, the processor causes orallows the illumination source to turn off.
 6. The system of claim 1,further comprising: a holder for the optical identifier, wherein theholder is positioned relative to the illumination source and the camerain such a manner that light produced by the illumination source willimpinge upon the selected one of the optical identifiers that is in theholder and afterwards reach a lens of the camera.
 7. The system of claim6, wherein the holder is a channel or a tray with a flat bottom and twosides that extend orthogonally in an upward direction from oppositesides of the flat bottom.
 8. The system of claim 1, wherein the readerfurther comprises: a circuit board; solder points on the circuit board;power and ground leads connected to the solder points; and one or morecommunication leads connected to the solder points, or the readerfurther comprises: a communication bus that comprises a clock lead and adata lead; and power and ground leads connected to a micro USB Jack PortSocket Connector, wherein the clock lead and the data lead are connectedto solder points; or the reader further comprises: a housing; and asystem on board fabrication, or the reader further comprises: one ormore mirrors configured to direct light from the illumination source tothe optical identifier and/or from the optical identifier toward a lensof the camera, or the reader further comprises: one or more mirrorsconfigured to direct light from the illumination source to the opticalidentifier and/or from the optical identifier toward a lens of thecamera, wherein one or more of the mirrors is placed within aretractable mirror housing, or the reader, or the optical identifier,further comprises: a reflective surface at a side of the opticalidentifier opposite the side of the optical identifier where light fromthe illumination source enters the optical identifier.
 9. The system ofclaim 1, wherein the volume hologram in the optical substrate includes acode page of data.
 10. The system of claim 1, wherein the volumehologram in the optical substrate includes more than one code page ofdata, and wherein the reader is configured with more than oneillumination source to illuminate the more than one code pages.
 11. Thesystem of claim 1, wherein each of the plurality of optical identifiershas a different volume hologram than the others.
 12. The system of claim1, wherein the illumination source is a laser.
 13. The system of claim1, wherein the illumination source is a light emitting diode.
 14. Asystem comprising: a plurality of optical identifiers, each opticalidentifier comprising: an optical substrate; and a volume hologram inthe optical substrate; and a reader for the optical identifiers, thereader comprising: an illumination source; and a camera, wherein theillumination source is configured to direct light into a selected one ofthe optical identifiers to produce an image of a corresponding one ofthe volume holograms at the camera, wherein the camera is configured tocapture the image, wherein the captured image is stored in a digitalformat by the system, and wherein the reader further comprises: acircuit board; solder points on the circuit board; power and groundleads connected to the solder points; and one or more communicationleads connected to the solder points.
 15. A system comprising: aplurality of optical identifiers, each optical identifier comprising: anoptical substrate; and a volume hologram in the optical substrate; and areader for the optical identifiers, the reader comprising: anillumination source; and a camera, wherein the illumination source isconfigured to direct light into a selected one of the opticalidentifiers to produce an image of a corresponding one of the volumeholograms at the camera, wherein the camera is configured to capture theimage, wherein the captured image is stored in a digital format by thesystem, and wherein the reader further comprises: a communication busthat comprises a clock lead and a data lead; and power and ground leadsconnected to a micro USB Jack Port Socket Connector, and wherein theclock lead and the data lead are connected to solder points.
 16. Asystem comprising: a plurality of optical identifiers, each opticalidentifier comprising: an optical substrate; and a volume hologram inthe optical substrate; and a reader for the optical identifiers, thereader comprising: an illumination source; and a camera, wherein theillumination source is configured to direct light into a selected one ofthe optical identifiers to produce an image of a corresponding one ofthe volume holograms at the camera, wherein the camera is configured tocapture the image, wherein the captured image is stored in a digitalformat by the system, and wherein the reader further comprises: ahousing; and a system on board fabrication.
 17. A system comprising: aplurality of optical identifiers, each optical identifier comprising: anoptical substrate; and a volume hologram in the optical substrate; and areader for the optical identifiers, the reader comprising: anillumination source; and a camera, wherein the illumination source isconfigured to direct light into a selected one of the opticalidentifiers to produce an image of a corresponding one of the volumeholograms at the camera, wherein the camera is configured to capture theimage, wherein the captured image is stored in a digital format by thesystem, and wherein the reader further comprises: one or more mirrorsconfigured to direct light from the illumination source to the opticalidentifier and/or from the optical identifier toward a lens of thecamera.
 18. A system comprising: a plurality of optical identifiers,each optical identifier comprising: an optical substrate; and a volumehologram in the optical substrate; and a reader for the opticalidentifiers, the reader comprising: an illumination source; and acamera, wherein the illumination source is configured to direct lightinto a selected one of the optical identifiers to produce an image of acorresponding one of the volume holograms at the camera, wherein thecamera is configured to capture the image, wherein the captured image isstored in a digital format by the system, and wherein the reader furthercomprises: one or more mirrors configured to direct light from theillumination source to the optical identifier and/or from the opticalidentifier toward a lens of the camera, wherein one or more of themirrors is placed within a retractable mirror housing.
 19. A systemcomprising: a plurality of optical identifiers, each optical identifiercomprising: an optical substrate; and a volume hologram in the opticalsubstrate; and a reader for the optical identifiers, the readercomprising: an illumination source; and a camera, wherein theillumination source is configured to direct light into a selected one ofthe optical identifiers to produce an image of a corresponding one ofthe volume holograms at the camera, wherein the camera is configured tocapture the image, wherein the captured image is stored in a digitalformat by the system, and wherein the reader further comprises: areflective surface at a side of the optical identifier opposite the sideof the optical identifier where light from the illumination sourceenters the optical identifier.
 20. A system comprising: a plurality ofoptical identifiers, each optical identifier comprising: an opticalsubstrate; and a volume hologram in the optical substrate; and a readerfor the optical identifiers, the reader comprising: an illuminationsource; and a camera, wherein the illumination source is configured todirect light into a selected one of the optical identifiers to producean image of a corresponding one of the volume holograms at the camera,wherein the camera is configured to capture the image, wherein thecaptured image is stored in a digital format by the system, and whereinthe optical identifier further comprises: a reflective surface at a sideof the optical identifier opposite the side of the optical identifierwhere light from the illumination source enters the optical identifier.21. The system of claim 1, wherein the reader is configured to projectdifferent ones of the more than one code page onto the camera as theidentifier moves through angles.
 22. A system comprising: a plurality ofoptical identifiers, each optical identifier comprising: an opticalsubstrate; and a volume hologram in the optical substrate; and a readerfor the optical identifiers, the reader comprising: an illuminationsource; and a camera, wherein the illumination source is configured todirect light into a selected one of the optical identifiers to producean image of a corresponding one of the volume holograms at the camera,wherein the camera is configured to capture the image, wherein thecaptured image is stored in a digital format by the system, and whereinone or more of units of digital data in a code page of digital data inthe volume hologram optical identifier is recognizable by an externalelement as an identifier.
 23. A system comprising: a plurality ofoptical identifiers, each optical identifier comprising: an opticalsubstrate; and a volume hologram in the optical substrate; and a readerfor the optical identifiers, the reader comprising: an illuminationsource; and a camera, wherein the illumination source is configured todirect light into a selected one of the optical identifiers to producean image of a corresponding one of the volume holograms at the camera,wherein the camera is configured to capture the image, wherein thecaptured image is stored in a digital format by the system, and whereinthe external element is an optical identification system (OIS) or asoftware-based artificial intelligence agent connected to an OIS.
 24. Asystem comprising: a plurality of optical identifiers, each opticalidentifier comprising: an optical substrate; and a volume hologram inthe optical substrate; and a reader for the optical identifiers, thereader comprising: an illumination source; and a camera, wherein theillumination source is configured to direct light into a selected one ofthe optical identifiers to produce an image of a corresponding one ofthe volume holograms at the camera, wherein the camera is configured tocapture the image, wherein the captured image is stored in a digitalformat by the system, and wherein each respective one of some of thevolume holograms stores a unique identifier for a particularsoftware-based artificial intelligence agent associated with aparticular human user, wherein the unique identifier is recognizable byother software-based artificial intelligence agents on a network. 25.The system of claim 24, wherein each respective one of the other volumeholograms stores a unique identifier for a person, wherein the uniqueidentifier for the person is recognizable by other software-basedartificial intelligence agents on a network.
 26. The system of claim 1,wherein the reader further comprises: a computer-based processor,wherein the processor is configured to cause the camera to capture theimage; and non-transitory computer-based memory coupled to theprocessor, wherein the computer-based processor is further configured tostore the captured image in the non-transitory computer-based memory.27. The system of claim 26, wherein, after the image is captured, theprocessor causes an illumination source to turn off.